在 C++ 中, 作用域运算符 (::) 就像一个精准的定位系统,告诉编译器确切要搜索哪个命名空间。然而,反复输入 std:: 就像是每次说话都要写全名一样。我们使用 using 声明 来创建局部别名。
1. using 声明
一个 using 声明允许我们无需前缀即可访问另一个命名空间中的名称。其格式为: using 命名空间名::名称;。每个声明都必须以一个 分号结尾。声明后,该名称从声明点开始 在作用域内 直到 局部作用域 (如函数块)或 全局作用域 (文件级别)。
using std::cin; // cin 现在指向 std::cin
2. 头文件整洁性与防护机制
为了支持 分离编译,我们使用 头文件防护宏。这些机制可防止预处理器多次包含同一文件,从而避免“重新定义”错误。通过使用 #ifndef (如果未定义), #define,以及 #endif 确保头文件仅被处理一次。
⚠️ 关键规则
头文件内的代码通常不应使用 using 声明。 由于头文件会被复制到每一个包含它的文件中,因此头文件中的
#include声明会强制将该名称引入每个包含文件的作用域,可能导致无声的名称冲突。 using 声明会强制将该名称引入每个包含文件的作用域,可能导致无声的名称冲突。TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>